package org.edu.modules.stu.base.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.edu.common.base.BaseEntity;


import org.hibernate.validator.constraints.Length;

import java.io.Serializable;
import java.util.Date;

/**
 * entity-学生学籍异动表
 */
@TableName("ve_stu_change")
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "学生学籍异动表对象", description = "ve_stu_change")
public class VeStuChange extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableField
    @ApiModelProperty(value = "学号")
    @Length(max = 20)
    private String code;

    @TableField
    @ApiModelProperty(value = "姓名")
    @Length(max = 20)
    private String name;

    @TableField("stu_id")
    @ApiModelProperty(value = "学生id")
    private Integer stuId;

    @TableField
    @ApiModelProperty(value = "异动类别码;1=>'退学',2=>'休学',3=>'转专业',4=>'留级',5=>'转入',6=>'转出',")
    @Length(max = 50)
    private String ydlbm;

    @TableField
    @ApiModelProperty(value = "异动日期")
    @JsonFormat(timezone = "GMT+8", locale = "zh", pattern = "yyyy-MM-dd")
    private Date ydDate;

    @TableField
    @ApiModelProperty(value = "异动原因")
    @Length(max = 65535)
    private String ydMsg;

    @TableField
    @ApiModelProperty(value = "审批日期")
    @JsonFormat(timezone = "GMT+8", locale = "zh", pattern = "yyyy-MM-dd")
    private Date spDate;

    @TableField
    @ApiModelProperty(value = "审批文号")
    @Length(max = 50)
    private String spwh;

    @TableField
    @ApiModelProperty(value = "经办人工号")
    @Length(max = 30)
    private String jbrgh;

    @TableField
    @ApiModelProperty(value = "异动来源学校码")
    @Length(max = 50)
    private String ydlyxxm;

    @TableField
    @ApiModelProperty(value = "异动去向学校码")
    @Length(max = 50)
    private String ydqxxm;

    @TableField
    @ApiModelProperty(value = "异动说明")
    @Length(max = 65535)
    private String ydsm;

    @TableField("ofal_id")
    @ApiModelProperty(value = "")
    private Integer ofalId;

    @TableField("ofal_text")
    @ApiModelProperty(value = "原院系")
    @Length(max = 255)
    private String ofalText;

    @TableField("ospec_id")
    @ApiModelProperty(value = "原专业码")
    private Integer ospecId;

    @TableField("ospec_text")
    @ApiModelProperty(value = "")
    @Length(max = 255)
    private String ospecText;

    @TableField("obj_id")
    @ApiModelProperty(value = "原班号")
    private Integer objId;

    @TableField("obj_text")
    @ApiModelProperty(value = "")
    @Length(max = 255)
    private String objText;

    @TableField("ograde_id")
    @ApiModelProperty(value = "原年级")
    private Integer ogradeId;

    @TableField("ograde_test")
    @ApiModelProperty(value = "")
    @Length(max = 255)
    private String ogradeTest;

    @TableField("fal_id")
    @ApiModelProperty(value = "院系")
    private Integer falId;

    @TableField("fal_text")
    @ApiModelProperty(value = "")
    @Length(max = 255)
    private String falText;

    @TableField("spec_id")
    @ApiModelProperty(value = "专业码")
    private Integer specId;

    @TableField("spec_text")
    @ApiModelProperty(value = "")
    @Length(max = 255)
    private String specText;

    @TableField("bj_id")
    @ApiModelProperty(value = "班级")
    private Integer bjId;

    @TableField("bj_text")
    @ApiModelProperty(value = "")
    @Length(max = 255)
    private String bjText;

    @TableField("grade_id")
    @ApiModelProperty(value = "年级")
    private Integer gradeId;

    @TableField("grade_text")
    @ApiModelProperty(value = "")
    @Length(max = 255)
    private String gradeText;

    @TableField("is_recover")
    @ApiModelProperty(value = "异动恢复状态;1已恢复")
    private Integer isRecover;

    @TableField("recover_user_id")
    @ApiModelProperty(value = "异动恢复操作人id")
    private Integer recoverUserId;

    @TableField("recover_time")
    @ApiModelProperty(value = "异动恢复时间")
    @JsonFormat(timezone = "GMT+8", locale = "zh", pattern = "yyyy-MM-dd")
    private Date recoverTime;
}
